Conditionを使って特定のポリシー管理のみをメンバーアカウントに委任する #reInvent
はじめに
こんにちは。大阪オフィスの林です。
先日のアップデートでOrganizationsのポリシー管理をメンバーアカウントに委任できるようになりました。
Organizationsで管理できるポリシーとして最も有名なのが、サービスコントロールポリシー(以降、SCP)だと思っているのですが、実はそれ以外にもポリシーがあることをご存知でしょうか。
- SCP
- 組織のアカウント内で使用できるアクセス許可を一元管理できます。
- バックアップポリシー
- バックアップポリシーを使用すると、組織全体のバックアップ計画をデプロイして、組織のアカウント全体でコンプライアンスを確保できます。
- タグポリシー
- タグポリシーは組織全体でタグ付けされたすべてのリソースでタグを標準化するのに役立ちます。
- AI サービスのオプトアウトポリシー
- 人工知能 (AI) サービスのオプトアウトポリシーにより、AWS AI サービスがお客様のコンテンツを保存および使用できるかどうかを制御できます。
今回のアップデートでは上記4つのポリシー管理をメンバーアカウントに委任できるようになっています。
一方で「SCPの管理は委任したいけどバックアップポリシー/タグポリシーは触らせたくない。」など個別の要件が出てくることも想像できます。
アップデートのブログ内では、Condition
を付けてバックアップポリシーのみに限定する方法が紹介されていましたが、そのほかの条件についても記載方法を本エントリでまとめておきたいと思います。
やってみた
SCPのみを触らせたい
organizations:PolicyType
にSERVICE_CONTROL_POLICY
を指定します。
"Condition": { "StringLikeIfExists": { "organizations:PolicyType": "SERVICE_CONTROL_POLICY" } }
結果
SCPのみ見えるようになっておりその他のポリシー管理は権限エラーになっています。
バックアップポリシーのみを触らせたい
organizations:PolicyType
にBACKUP_POLICY
を指定します。
"Condition": { "StringLikeIfExists": { "organizations:PolicyType": "BACKUP_POLICY" } }
結果
バックアップポリシーのみ見えるようになっておりその他のポリシー管理は権限エラーになっています。
タグポリシーのみを触らせたい
organizations:PolicyType
にTAG_POLICY
を指定します。
"Condition": { "StringLikeIfExists": { "organizations:PolicyType": "TAG_POLICY" } }
結果
タグポリシーのみ見えるようになっておりその他のポリシー管理は権限エラーになっています。
AI サービスのオプトアウトポリシーのみを触らせたい
organizations:PolicyType
にAISERVICES_OPT_OUT_POLICY
を指定します。
"Condition": { "StringLikeIfExists": { "organizations:PolicyType": "AISERVICES_OPT_OUT_POLICY" } }
結果
AI サービスのオプトアウトポリシーのみ見えるようになっておりその他のポリシー管理は権限エラーになっています。
SCPとバックアップポリシーのみを触らせたい
organizations:PolicyType
にSERVICE_CONTROL_POLICY
とBACKUP_POLICY
を指定します。
"Condition": { "StringLikeIfExists": { "organizations:PolicyType": [ "SERVICE_CONTROL_POLICY", "BACKUP_POLICY" ] } }
結果
SCPとバックアップポリシーのみ見えるようになっておりその他のポリシー管理は権限エラーになっています。
まとめ
最小限の権限でポリシー管理を委任するために、Condition
を併用して管理を委任する方法を紹介させて頂きました。
この記事がどなたかの参考になりましたら幸いです。
以上、大阪オフィスの林がお送りしました!